package com.ruoyi.common.oms.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.oms.entity.YytOmsOrder;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 订单 服务类
 * </p>
 *
 * @author huangshun
 * @since 2021-12-16
 */
public interface YytOmsOrderService extends IService<YytOmsOrder> {

    /**
     * 根据用户id和订单状态获取订单数量
     */
    Integer countOrder(String memberId, int status);

    /**
     * 根据状态获取用户订单列表
     */
    Page<YytOmsOrder> getOrders(Page<YytOmsOrder> page, String memberId, Integer status);

    /**
     * 用户下单
     */
    boolean createOrder(YytOmsOrder yytOmsOrder);

    /**
     * 根据订单id获取订单详情信息
     */
    YytOmsOrder getOrderInfo(String orderId, String memberId);

    /**
     * 把订单号放入消息队列
     * @return
     */
    boolean orderMessageQueue(String orderId);

    /**
     * 获取今日订单统计
     * @return
     */
    Map getDayCountNumber(String dayDate);

    /**
     * 获取今日订单列表
     * @param page
     * @return
     */
    Map getDayOrderListTitle(Page<YytOmsOrder> page, String dayDate);

    List<YytOmsOrder> getShopDayOrderList(String shopId, String dayDate);

    Boolean updateOrderStatus(String orderId);

    /**
     * 获取本人当月订单
     * @param id
     * @return
     */
    List<YytOmsOrder> getMyMonthOrders(String id);

    /**
     * 根据权限获取待核销订单
     * @param id
     * @return
     */
    List<YytOmsOrder> getAwaitOrderCancel(String id);
}
